
#include <linux/module.h>   
#include <linux/init.h>  
#include <linux/fs.h>   
#include <linux/device.h>   
#include <linux/slab.h>  
#include <linux/cdev.h>  
#include <linux/err.h>  
#include <asm/uaccess.h>  
#include <linux/io.h>  
#include <linux/of.h>  
#include <linux/of_gpio.h>  
#include <linux/gpio.h>  
#include <linux/platform_device.h>
#include <linux/kern_levels.h>
#include <linux/ioport.h>      
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/interrupt.h>
#include <linux/device.h>
#include <linux/uaccess.h>
#include <linux/wait.h>
#include <linux/poll.h>
#include <net/sock.h>
#include <linux/netlink.h>
#include <linux/semaphore.h>





static int gpio_probe(struct platform_device *pdev)
{
    printk("-----------> gpio_probe \n");
    return 0;
}


static int gpio_remove(struct platform_device *pdev)
{    
    printk("-----------> gpio_remove \n");
    return 0;
}




static const struct of_device_id of_gpio_match[] = {
    { .compatible = "platform", .data = NULL},
    {},
};
static struct platform_driver gpio_driver = {
    .probe  = gpio_probe,
    .remove = gpio_remove,
    .driver = {
        .name   = "gpio_driver",
        .of_match_table = of_gpio_match,
    },
};

module_platform_driver(gpio_driver);
MODULE_LICENSE("GPL");  